package dataview;

import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import store.Cibo;
import store.Ricetta;

public class Cibi extends LinkedList<Cibo> {
	private static final long serialVersionUID = -8918783637330647670L;

	public Cibi () {}
	
	public Cibi (Collection<? extends Cibo> cibi) {
		this.addAll(cibi);
	}
	
	public CibiVis vis () {
		CibiVis cibiVis = new CibiVis();
		for (Cibo cibo : this)
			cibiVis.add(cibo.vis());
		return cibiVis;
	}
	
	public CibiVisCorta visCorta () {
		CibiVisCorta cibiVis = new CibiVisCorta();
		for (Cibo cibo : this)
			cibiVis.add(cibo.visCorta());
		return cibiVis;
	}
	
	/**
	 * Unione di due liste senza ripetizioni
	 * @param cc La lista di cibi da unire a quella in questione
	 * @return La lista dei cibi ottenuta dalla unione delle due
	 */
	public Cibi unione (Cibi cc) {
		Set<Cibo> set = new HashSet<Cibo>(this);
		set.addAll(new HashSet<Cibo>(cc));
		return new Cibi(set);
	}
	
	public Cibi unione (Cibo c) {
		Cibi cc = new Cibi();
		cc.add(c);
		return unione(cc);
	}
}
